
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2023 All rights reserved
// *********************************************************************************
// Project Name : SeqDetector
// Author       : DFY
// File Name    : SeqDetector.v
// Abstract     : Using Shift Registers


module SeqDetector (
	input  wire clk	,
	input  wire rst_n	,
	input  wire din_vld	,
	input  wire din	,
	output reg  result	
);

//=================================================================================
// Signal and Parameter declaration
//=================================================================================
parameter SEQ1 = 6'b111000;
parameter SEQ2 = 6'b101110;	

reg [5:0] 	shiftregs;
wire 		regsult_vaild;
//=================================================================================
// Body
//=================================================================================
always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
		shiftregs <= 6'b0;
	else if (din_vld)
		shiftregs <= {shiftregs[4:0],din};
end
assign regsult_vaild = (SEQ1 == shiftregs)|(SEQ2 == shiftregs);

always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
		result 	<= 1'b0;
	else if (din_vld)
		result  <= regsult_vaild;
end

endmodule 
